package com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer;

import com.cloudbroker.bcs.common.annotation.MayLogin;
import com.cloudbroker.bcs.common.annotation.NoInvitationCode;
import com.cloudbroker.bcs.common.annotation.NoLogin;
import com.cloudbroker.bcs.common.entity.HSBCPSBackNumVO;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.HSBCPSVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.ListQueryVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.vo.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.wechat.vo.PayCallback;

public interface UserFansBizService {
    
    /**
     * 获取用户ID
     * @param param
     * @return
     */
    @NoLogin
    public UserIdGetBackForm funcUseridGet(UserIdGetForm param);
    
    /**
     * 粉丝登出
     * @param param
     * @return
     */
    @NoInvitationCode
    public HSBCPSBackVO funcCustomerLogout(HSBCPSVO param);
    
    /**
     * 获取用户信息
     * @param param
     * @return
     */
    public UserInfoBackForm funcUserInfoQry(HSBCPSVO param);
    
    /**
     * 查询粉丝金币数
     * @param param
     * @return
     */
    public HSBCPSBackNumVO funcUserAmountQry(HSBCPSVO param);
    
    /**
     * 查询粉丝未读消息数
     * @param param
     * @return
     */
    public HSBCPSBackNumVO funcNoreadNoticeQry(HSBCPSVO param);
    
    /**
     * 查询粉丝提问数
     * @param param
     * @return
     */
    public HSBCPSBackNumVO funcQuestionNumQry(HSBCPSVO param);
    
    /**
     * 粉丝头像修改
     * @param param
     * @return
     */
    public HSBCPSBackVO funcUpdateUserAvatar(UpdateUserAvatarForm param);
    
    /**
     * 粉丝昵称修改
     * @param param
     * @return
     */
    public HSBCPSBackVO funcUpdateUserName(UpdateUserNameForm param);
    
    /**
     * 粉丝充值
     * @param param
     * @return
     */
    @NoLogin
    public HSBCPSBackVO funcUserRecharge(PayCallback param);
    
    /**
     * 粉丝充值明细
     * @param param
     * @return
     */
    /*
    public RechargeDetailBackList funcRechargeDetailQry(RechargeDetailQryForm param);*/
    
    /**
     * 粉丝明细
     * @param param
     * @return
     */
    public ConsumeDetailBackList funcConsumeDetailQry(ConsumeDetailQryForm param);
    
    /**
     * 提建议
     * @param param
     * @return
     */
    public HSBCPSBackVO funcSuggestionAdd(SuggestionAddForm param);
    
    /**
     * 获取滚动播报通知
     * @param param
     * @return
     */
    public NoticeQryBackList funcNoticeListQry(NoticeForm param);
    
    /**
     * 粉丝端手机登录
     * @param form
     * @return
     */
    @NoLogin
    public UserIdGetBackForm funcMobileLogin(MobileLoginForm form);
    
    @NoLogin
    public UserIdGetBackForm funcUserInfoComplet(UserInfoCompletForm form);
    
    /**
     * 验证邀请码
     * @param form
     * @return
     */
    @NoInvitationCode
    public HSBCPSBackVO funcCheckInvitationCode(InvitationCodeForm form);
    
    /*
    * fans获取在线用户数
    *
    * */
    public OnlineNumResultByFans funcChatRoomOnlineNumByFans(HSBCPSVO form);
    
    public HSBCPSBackVO funcFansRecharge(HSBCPSVO form);
    
    @NoLogin
    public HSBCPSBackVO funcFansActivityRecharge(FansFundForm form);
    
    @NoLogin
    public UserIdGetBackForm funcUseridGetByTenant(UserIdGetByTenantForm param);
    
    @NoLogin
    public UserIdGetBackForm funcMobileLoginByTenant(MobileLoginByTenantForm param);

    @NoLogin
    public CustomerAccountTypeBack funcIsCapitalAccount(HSBCPSVO form);

    @NoLogin
    public UserIdGetBackForm funcUserInfoCompletByTenant(UserInfoCompletByTenantForm form);
    
    public HSBCPSBackVO funcFansFollowBroker(FollowBrokerForm form);
    
    @MayLogin
    public BrokerListResult funcBrokerListByTenant(BrokerListTenant form);
    
    public HSBCPSBackVO funcFansCancelFollowBroker(FollowBrokerForm form);
    
    public FollowBrokerResult funcFansClickBroker(FollowBrokerForm form);
    
    public AccessTokenForm funcGetLightAccessToken(OpenIDForm form);
    
    @NoLogin
    public GuestResultData funcGuestToken(GuestTokenForm form);
    
    @NoLogin
    public FansAppRegLoginBackData funcFansAppRegLogin(FansAppRegLoginForm form);
    
    @NoLogin
    public HSBCPSBackVO funcFansPointRecharge(FansPointForm form);
    
    @NoLogin
    public HSBCPSBackVO funcFansPointConsume(FansPointForm form);
    
    @NoLogin
    public FansPointBackList funcFansPointQueryList(FansQueryForm form);
    
    @NoLogin
    public FansPointBackForm funcFansPointQuery(FansBalanceForm form);
    
    public FansPointBackForm funcFansPointQueryLogin(HSBCPSVO form);
    
    public FansPointUrlBackForm funcFansPointUrl(HSBCPSVO form);
    
    public BrokerDropdownList funcBrokerDropdownListByTenant(ListQueryVO form);
    
    public HSBCPSBackVO funcActionLog(ActionLogForm form);
    
    @NoLogin
    public BrokerInfoByUserIdBack funcGetBrokerInfoByUserId(BrokerInfoByUserIdForm form);

    public SurveyStatusList funcSurveyStatusList(SurveyStatusListForm form);
    
    @NoLogin
    public UserIdGetBackForm funcPasswordLogin(PasswordLoginForm form);

    @NoLogin
    public UserIdGetBackForm funcPasswordLoginByTenant(PasswordLoginByTenantForm form);

    @NoLogin
    public HSBCPSBackVO funcFansResetPassword(ResetPasswordForm form);
    
}
